package com.ruoyi.system.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.domain.Yg;
import com.ruoyi.system.domain.bo.SlmxBo;
import com.ruoyi.system.domain.vo.SlmxVo;
import com.ruoyi.system.mapper.SlmxMapper;
    import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.service.IYgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SlmxMapper;
import com.ruoyi.system.domain.Slmx;
import com.ruoyi.system.service.ISlmxService;
import org.springframework.transaction.annotation.Transactional;


/**
 * 【请填写功能名称】Service业务层处理
 *
 * @author ruoyi
 * @date 2025-05-08
 */
@Service
public class SlmxServiceImpl extends ServiceImpl<SlmxMapper, Slmx> implements ISlmxService
{
    @Autowired
    private SlmxMapper slmxMapper;
    @Autowired
    private IYgService ygService;

    /**
     * 查询【请填写功能名称】
     *
     * @param slmxId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public SlmxBo selectSlmxBySlmxId(Long slmxId)
    {
        return slmxMapper.selectSlmxBySlmxId(slmxId);
    }

/**
 * 查询【请填写功能名称】列表
 *
 * @param slmxVo 【请填写功能名称】
 * @return 【请填写功能名称】
 */

@Override
public List<SlmxBo> selectSlmxList(SlmxVo slmxVo)
{
    return slmxMapper.selectSlmxList(slmxVo);
}

    @Override
    public List<SlmxBo> selectSlmxs(Long [] slmxIds)
    {
        return slmxMapper.selectSlmxs(slmxIds);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param slmx 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertSlmx(Slmx slmx)

    {
        slmx.setUpdateTime(DateUtils.getNowDate());
                slmx.setCreateTime(DateUtils.getNowDate());
            return slmxMapper.insertSlmx(slmx);
    }



    /**
     * 修改【请填写功能名称】
     *
     * @param slmx 【请填写功能名称】
     * @return 结果
     */
    @Override
    @Transactional
    public int updateSlmx(Slmx slmx,Long ygId)
    {
        slmx.setUpdateTime(DateUtils.getNowDate());
        if(slmx.getBackStatus().equals("2")){
            LambdaQueryWrapper<Yg> lambdaQueryWrapper=new LambdaQueryWrapper();
            lambdaQueryWrapper.select(Yg::getYgId,Yg::getBackMoney);
            lambdaQueryWrapper.eq(Yg::getYgId,ygId);
            Yg dbYg = ygService.getOne(lambdaQueryWrapper);
            dbYg.setBackMoney(dbYg.getBackMoney().add(slmx.getMoney()));
            ygService.updateById(dbYg);
            slmx.setWithdrawalStatus("1");
        }
        return slmxMapper.updateSlmx(slmx);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param slmxIds 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteSlmxBySlmxIds(Long[] slmxIds)
    {
        return slmxMapper.deleteSlmxBySlmxIds(slmxIds);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param slmxId 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteSlmxBySlmxId(Long slmxId)
    {
        return slmxMapper.deleteSlmxBySlmxId(slmxId);
    }
}
